This invention relates generally to the field of digital and optical data transmission input into an electronic data communication system and more particularly, relates to an apparatus and method to store a history of the results of error detection for consecutive data packets to evaluate the integrity of incoming data packets.
For reliable communications having data integrity in a digital data communication system it is necessary to be reasonably sure of detecting all transmission errors. In complex communication systems, such as computers having storage of data to and retrieval from electronic memory, optical media or magnetic media, and input/output (I/O) devices, etc. there may be many transmission networks. Errors in data transmission may occur as a result of noise, media defects, circuit failure, or a transceiver being left xe2x80x9copen,xe2x80x9d to name only a few. Noise can result from some receivers, such as differential and optical receivers, which are powered but are not receiving any valid data. Environmental perturbations around these xe2x80x9copenxe2x80x9d receivers can fluctuate around the detection threshold for these receivers and so the receivers perpetrate noise into the communication system as random data.
One way of detecting errors in data transmission uses cyclic redundancy check symbols or CRCs. The data can be viewed as a sequence of binary bits or a sequence of multi-bit symbols. In general, a CRC is an additional code added to the data prior to data transmission. CRCs are calculated by treating the data as the coefficients of a polynomial and dividing the data by another polynomial and keeping the remainder. The data and CRC together make up a codeword which is then transmitted through the communication channel. At the receiving end of the channel a CRC is calculated independently from the received data. The calculated CRC is compared to the original transmitted CRC and a discrepancy between the two indicates a transmission error. In general a bit-oriented CRC is desired if the expected errors are random bit errors and a symbol-oriented CRC is desired if the expected errors are burst errors or random symbol errors.
Typically, most data transmission systems rely on CRC checking to determine if data has been accurately transmitted. For the most part, using CRC checking is sufficient to detect errors and discard data having such an error. Even when a data transfer protocol includes data integrity checks, such as CRC checking, however, random data eventually passes the CRC check causing erroneous data to be accepted as legitimate data. For example, if an open receiver produces random data and decodes a packet of that random data once every microsecond, then even a 32-bit CRC will accept an erroneous data packet having a matching CRC every 1.2 hours.
There is thus a need to increase the reliability of transmitted data in high speed communications systems.
There is also a need during data transmission to detect when random data is being transmitted, received, or generated. One source of random data, moreover, is an open differential or optical receiver which generates random data in response to environmental noise; so there is also a need to detect when a differential or optical receiver is in an xe2x80x9copenxe2x80x9d state so the data or the receiver can be gated.
These needs and others that will become apparent to one skilled in the art are satisfied by a method of error detection in the transfer of data, comprising the steps of receiving a data packet having an error detection code over a data link; checking the error detection code at a data receiver for an error in the transmission of the data packet; storing the history of the results of the error check; and repeating the steps of receiving the data packet, checking the error detection code and storing the results of the error detection code checking for n consecutive packets, where n greater than 1; and if at least one of the n previous data packets indicates an error in the transmission of the data packet, then discarding the n+1 data packet.
The data may be optical data transmitted over a fiber optic channel. The data may also be electronic digital data. The error detection code may be a CRC code; and may even be a 32 bit CRC code.
If eight of the previous data packets indicate an error in the error detection code, then the method may determine that the transmitted data is random data.
Another embodiment of the invention is a data communication system comprising a processor connected to at least one data transmitter device for the transfer of data in packets having an error code to and from the data transmitter device, a receiver connected between the processor and the data transmitter device, the receiver having an error checker to check the error code for a data transmission error of each data packet; a shift register connected to the error checker to store the results of the error checker for each sequential data packet; and a packet receiver to accept a current data packet when not only does the current data packet have no data transmission error but also at least one of the previous data packets has no data transmission errors. The packet receiver may reject the current packet even though the current packet has no data transmission error but at least one of the previous data packets has a data transmission error.
The invention may further be considered an apparatus for assuring the integrity of data transmission, comprising means to receive a stream of data packets, each of the data packets having an error code; means to check the error code of each data packet as it arrives into said receiver to determine if there is a transmission error for each data packet; means to store the results of the error code checking means for n sequential packets; means to reject a current data packet when the current data packet has no transmission error but the error code checking means indicates that one of n sequential packets immediately transmitted before the current packet has a transmission error.
Further scope of applicability of the present invention will become apparent from the detailed description given herein. It should be understood, however, that the detailed description and the specific examples, while indicating preferred embodiments of the invention, are given by way of illustration only. Various changes and modifications within the spirit and scope of the invention will become apparent to those skilled in the art upon review of the detailed description.